interface resultData {
	code : number
	msg : string
	data : any
}
/**
 * 调用微信云函数的工具函数
 * @param name - 云函数名称
 * @param data - 传递给云函数的参数
 * @param showLoading - 是否显示加载提示
 * @param showErrorToast - 是否显示错误提示
 * @returns 返回一个 Promise 对象，包含云函数的调用结果
 */
export const callCloudFun = (
	name : string,
	data : Record<string, any> = {},
) : Promise<any> => {
	return new Promise((resolve, reject) => {
		// 显示加载提示
		wx.showLoading({
			title: '稍等...',
			mask: true,
		});

		// 调用云函数
		wx.cloud.callFunction({
			name, // 云函数名称
			data, // 传递给云函数的参数
			success: (res) => {
				// 隐藏加载提示
				wx.hideLoading().then(() => {
					console.log("success了:", res);
					const data = res.result as resultData
					if (data.code === 1) {
						resolve(data.data)
					} else {
						wx.showToast({
							title: data.msg,
							icon: 'none',
							duration: 2000
						})
						reject(data.data)
					}
				});
			},
			fail: (err) => {
				// 隐藏加载提示
				wx.hideLoading();
				// 显示错误提示
				wx.showToast({
					title: err.errMsg,
					icon: 'none',
					duration: 2000,
				});
				// 打印错误日志
				console.error(`云函数调用失败 [${name}]：`, err);
				reject(err);
			},
		});
	});
};